Fuzzy logic systems using fuzzy inference rules are widely used in the art to control various consumer electronics, household appliances, automobile systems, cameras, etc. These systems generally operate in the following manner:
1) input data, such as temperature, velocity, humidity, etc., is input to a fuzzifier;
2) the fuzzifier compares the input data to sets of predetermined parameters, or input membership functions that define the positions or shapes of input labels. The input data is compared to a given number of input labels within each input membership function and a grade is determined for each input label. The grade represents the conformity each input data has to that designated input label;
3) the graded input labels are input to a min/max computation circuit (often called inference logic) where the graded input labels are compared to a set of rules and sets of output labels are determined;
4) the output labels are defuzzified, meaning that a Center of Gravity (COG) is calculated among the output labels to determine a single point ("crisp signal") most representative of the output data. The resultant signal is a control signal, such as a signal controlling the speed of an automobile system or the temperature control in an air-conditioning system.
FIG. 1 shows the above process in block form. Input data is input to fuzzifier 10 where the data is graded according to membership functions stored in memory 12. FIG. 2 shows an example of one such membership function. Data stored in membership function memory 12 would be similar to that of the graph. Each membership function is divided into pre-defined labels, or input labels. In FIG. 2, the input labels include L.sub.1 through L.sub.5.
Assume for example that the variable unit input into fuzzifier 10 is temperature, and the input temperature is about 25 degrees C. as shown. This data point has fallen within three pre-defined input labels: L.sub.2, L.sub.3, and L.sub.4. The grade for input label L.sub.2 would be 27%, for L.sub.3 would be 65%, and for L.sub.4 would be 7%. For input labels L.sub.1 and L.sub.5, the grades are both zero since the input data point does not fall within either of these input label ranges.
Referring again to FIG. 1, the graded input labels are sent to inference logic 14 where they are compared to a set of rules stored in rule memory 16. Each of these rules are associated with one output label, and there may be any number of output labels. The purpose of inference logic 14 is to determine which of the graded input labels within any given inference rule has a minimum graded value, and then which of the minimum graded values for each of the output labels has a maximum graded value. Generally, these operations require many repetitions of numerous comparisons of the input labels to each other to determine the minimums, and then maximums of those minimums.
The conditions in the rules are often referred to as "antecedents" and the resultants of the rules are often referred to as "consequents".
Depending upon the rules determined by the user, there may be several different categories of consequents. For instance, using the example of oven power control, the consequents may be grouped in one of several output labels, such as the over-simplified "down", "up", and "as-is". This step may be better understood with reference to the following rules. In these rules, there are graded input labels A through N which are fuzzified temperature input labels (no relation to the data in FIG. 2) input into inference logic 14. Rules 1 through 7 have been stored in rule memory 16 with consequents X, Y, and Z representing the output labels "down", "up", and "as-is" respectively.
The rules are:
______________________________________ Rule (1) if A and B then X Rule (2) if B and C then X Rule (3) if E and F then X Rule (4) if G and M and N then X Rule (5) if C and D then Y Rule (6) if H and I then Z Rule (7) if J and K and L then Z ______________________________________
The grades of the input labels in the antecedents, are:
______________________________________ A = 0 B = 0.06 C = 0.7 D = 0.55 E = 0.65 F = 0 G = 0.45 H = 0.9 I = 0 J = 0 K = 0 L = 0.62 M = 0.2 N = 0 ______________________________________
It should be noted in the above rules that the "and" function in each rule represents "select the minimum". Therefore, in rule (1), "if A and B then X" means that X will take the value of the minimum of A and B. Each "then" in the fuzzy rules indicates a substitution of the minimum grade into the consequent (s). Substituting the grades into A and B yields, "if 0 and 0.06, then X=0" since the value of A (0) is less than the value of B (0.06).
The selection of the minimum value is only the first step in the min/max operation of inference logic 14. After the minimum for each rule is selected, the maximum of all the consequents for each output label X, Y, and Z is found. Accordingly, the consequents of rules 1 through 4 are compared and the maximum is determined. This maximum is the output label "X". Rule 5 is the only rule applicable to output label "Y", so the minimum is also the maximum. The maximum of rules 6 and 7 will be the output label for "Z".
The output labels are sent from inference logic 14 to defuzzifier 18. Defuzzifier 18 takes the grades of the output labels, X, Y, and Z, and finds a center of gravity (COG) of all three (or all output labels depending upon the number) by weighting the values of all three to determine a gravity center point.
Now, referring again to the min/max operation of inference logic 14, there may be many input labels for each input variable. The more the total input labels, the more comparisons will be required in the min/max process. Processing this large amount of data in conventional fuzzy logic systems is slow. Accordingly, fuzzy control systems have been limited generally to low speed control applications such as home appliances. To advance fuzzy control systems into more complicated control systems where they are needed, such as automobile brake control or suspension control, computing speeds must be increased by a factor of about 1000. Increasing the speed requires synergistically tuning three different stages of the fuzzy control system logic: the grade computations in fuzzifier 10, the min/max operations in inference logic 14, and the calculation of the COG in defuzzifier 18.
Fuzzy logic min/max operations have been implemented in both software and hardware. With the large number of comparisons, software implementations are sluggish and limited. Hardware implementations are also slow as well as expensive since the large number of comparisons requires extensive hardware architecture. Because of these limitations, conventional fuzzy logic systems have not been able to increase the computing speed enough to increase the scope of use of fuzzy logic.